1 聚类方法

1 聚类的基本概念

1.1 相似度 距离

聚类的对象是观测数据或者样本集合. 假设有 n 个样本, m 个属性(feature), 将样本集合用矩阵 X 表示 X=[xij]m×n=[x11x1nxm1xmn].
矩阵的列表示样本, 行表示属性.

1.1.1 Minkowski 距离

K近邻法中我们定义了距离, 现在重新叙述一下记号:

Minkowski 距离

给定样本集合 XRm, xi=(x1i,,xmi)TX,xj=(x1j,,xmj)TX. 定义 xi,xjMinkowski 距离dij=(k=1m|xkixkj|p)1p,p1.

  • p=2 时, 称为 Euclide 距离: dij=(k=1m|xkixkj|2)12;
  • p=1 时, 称为 Manhattan 距离: dij=k=1m|xkixkj|;
  • p= 时, 称为 Chebyshev 距离: dij=maxk|xkixkj|.

1.1.2 Mahalanobis 距离 (马氏距离)

Mahalanobis 距离

给定样本集合 X=[xij]m×n, 协方差矩阵S. 则 xi,xjMahalanobis距离定义为 dij=[(xixj)TS1(xixj)]12.
xi,xjX 的第 i,j 列.

S=I, 马氏距离就是欧式距离.

1.1.3 相关系数

相关系数

xi,xj相关系数定义为 rij=k=1m(xkixi)(xkjxj)[k=1m(xkixi)2k=1m(xkjxj)2]12, 其中 xi=1mk=1mxki,xj=1mk=1mxkj.

1.1.4 夹角余弦

从向量的观点看, xi,xj 的相似度还可以用夹角余弦sij=k=1mxkixkj[k=1mxki2k=1mxkj2]12.


Pasted image 20241128155122.png|500
选择合适的距离或者相似度非常重要. 例如在上图中, 从距离来看 A,BA,C 更相似; 从相关系数角度看, A,CA,B 更相似.

1.2 类或簇

类或簇是样本的子集. 硬聚类规定样本只能属于一个类, 软聚类则允许同时属于多个类. 本章考虑硬聚类.
G 表示类或簇, 用 xi,xj 表示类中的样本, nG 表示 G 中样本个数, dij 表示 xi,xj 距离.

类的等价定义

给定正数 T.

  1. xi,xjG:dijT, 则 G 是一个类.
  2. xi,xjG:dijT, 则 G 是一个类.
  3. xiG,1nG1xjGdijT, 则 G 是一个类.
  4. 给定正数 V. xi,xj, dij 满足 1nG(nG1)xiGxjGdijT,dijV,G 是一个类.
类的常用特征

  1. 均值/中心 xG=1nGi=1nGxi.
  2. 直径 DG=maxxi,xjGdij.
  3. 样本散布矩阵 AG=i=1nG(xixG)(xixG)T;
    样本协方差矩阵 SG=1m1AG=1m1i=1nG(xixG)(xixG)T.

1.3 类间距离

Gp,Gq 之间的距离 Dpq 也称为连接(linkage). 设 np=|Gp|,nq=|Gq|. 用 xp,xq 表示两者的中心.

类间距离

  1. 最短距离(single linkage) Dpq=min{dij|xiGp,xjGq}.
  2. 最长距离/完全连接(complete linkage) Dpq=max{dij|xiGp,xjGq}.
  3. 中心距离 Dpq=dxpxq.
  4. 平均距离 Dpq=1npnqxiGpxjGqdij.

2 层次聚类

层次聚类假设类别间有层次结构(有点类似决策树), 分成

两种方法. 层次聚类属于硬聚类. 本文只考虑聚合聚类.

聚合聚类算法

输入 n 个样本组成的样本集合; 样本间的距离
输出 样本集合的层次化聚类

  1. 计算 Euclide 距离 {dij}, 记为 D=[dij]n×n.
  2. 构造 n 个类,每个类包含一个样本.
  3. 合并类间隔距离最小的两个类, 按其中的最短距离作为类间距离, 构造一个新类.
  4. 计算新类与当前各类的距离. 若类的个数为 1, 终止计算, 否则会到 3.

复杂度是 O(n3m). 事实上它构造了一个二叉树.

3 K 均值聚类 (K-Means)

3.1 模型与算法